// 网络查询模块
import $storage from '@/static/js/storage.js'
import $store from '@/store/index'
import $moment from 'moment'

// 简单校验ID
const checkId = id => {
    let res = {
        success: false,
        errMsg: ''
    }
    if (!id) {
        res.errMsg = 'ID不能为空'
        return res
    }
    if (id.length > 16) {
        res.errMsg = 'ID超长'
        return res
    }
    res.success = true
    return res
}
// 查询控制
const store = {
    state: {
        id: '', // ID（点击查询时设置）
        historyList: [] // 历史列表
    },
    mutations: {
        // 设置待查询Id
        SET_ID(state, id) {
            state.id = id
        },
        // 历史列表新增
        LIST_ADD(state, id) {
            state.historyList.unshift(id)
            $storage('set', 'historyList', JSON.stringify(state.historyList))
        },
        // 历史列表删除
        LIST_REMOVE(state, index) {
            state.historyList.splice(index, 1)
        },
        // 历史搜索列表设置
        LIST_SET(state, array) {
            state.historyList = array
        },
        // 历史搜索列表删除
        LIST_CLEAR(state) {
            state.historyList = []
        }
    },
    actions: {
        // 查询历史操作
        searchHistoryHandler({ commit, state }, id) {
            const checkRes = checkId(id)
            if (!checkRes.success) {
                uni.showToast({
                    icon: 'none',
                    title: checkRes.errMsg
                })
                return
            }
            let list = state.historyList
            let index = list.findIndex(val => val == id)
            if (index > -1) {
                commit('LIST_REMOVE', index)
            }
            if (list.length > 8) {
                commit('LIST_REMOVE', list.length - 1)
            }
            commit('LIST_ADD', id)
        },
        // 查询数据
        search({ commit }, id) {
            uni.showLoading({
                title: '查询中'
            })
            const params = {
                serialId: id, // id
                query_type: "5", // 查询类型
                startTime: "2000-01-01 01:30:10", // 初始时间
                endTime: $moment().format('YYYY-MM-DD HH:mm:ss') // 结束时间（当前）
            }
            uni.request({
                method: 'POST',
                url: 'api/query',
                /* #ifdef APP-PLUS */
                url: 'https://api.tongmu.cn/query',
                /* #endif */
                header: {
                    'content-type': 'application/json'
                },
                data: params,
                success: res => {
                    uni.hideLoading()
                    let data = res.data.data
                    if (!Object.keys(data).length) {
                        uni.showToast({
                            title: '该设备暂无记录',
                            icon: 'none'
                        })
                        return
                    }

                    // 设置数据
                    $store.dispatch('details/detailsDataHandler', data[0])
                    // 查询到记录跳转详情页面
                    uni.navigateTo({
                        url: `/pages/read-details/read-details?id=${id}`,
                        animationType: 'slide-in-right'
                    })
                },
                fail: err => {
                    uni.hideLoading()
                }
            })
        }
    }
}

export default store